# @Filename:    sample
# @Author:      王佳伟
# @Time:        2025-02-18 16:50
# @Describe:    示例教程
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

class SampleTutorial:
    def __init__(self):
        # 创建一个Chrome浏览器的WebDriver示例
        self.driver = webdriver.Chrome()
        # ChromeOptions类提供了对Chrome浏览器各种选项进行配置的方法;
        # 在excludeSwitches参数中，将enable-logging指定为要排除的选项，表示不启用浏览器的日志功能
        # options = webdriver.ChromeOptions()
        # options.add_experimental_option('excludeSwitches', ['enable-logging'])
        # self.drive = webdriver.Chrome(options=options)
        # 最大化窗口
        self.driver.maximize_window()
        # 隐式等待，设置最大的等待时长，只对查找元素（find_elementXXX）生效
        self.driver.implicitly_wait(2)

    def method(self):
        # 通过get()方法打开网页
        self.driver.get('https://www.baidu.com')

    def sign_out(self):
        # 退出浏览器
        # 关闭当前浏览器窗口或标签页。如果只有一个窗口或标签页被打开，调用driver.close()将会关闭整个浏览器会话。
        # 如果有多个窗口或标签页存在，调用driver.close()将关闭当前活动窗口或标签页，并切换到上一个窗口或标签页。
        self.driver.close()
        # 关闭浏览器，调用driver.quit()会终止WebDriver对象的相关进程和资源，及时清理测试环境。
        self.driver.quit()

if __name__ == "__main__":
    run = SampleTutorial()
    run.method()
    # 当自动化测试脚本执行完毕后，WebDriver对象会自动关闭相关的浏览器进程，释放资源并终止与浏览器的会话。
    # 但是，有时候在测试过程中，脚本出现异常导致未关闭浏览器，这时我们就需要手动调用来关闭浏览器。
    # run.sign_out()